package com.bit.cfdi.web.domain;

import java.io.Serializable;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

@Entity
@Table(name = "serie_deleted")
public class SerieDeleted implements Serializable {


	private static final long serialVersionUID = -2271171234064729023L;
	// Fields

	private Long idSerie;
	private String noFolioInicial;	
	private String noFolioActual;
	private String noFolioFinal;
	private String serie;
	private Sucursal sucursal;
	private String rfc;
	private Boolean isDefault;
	private String yearAprobacion;
	private String numAprobacion;
	private String tipoComprobante;
	private Long ultimaModificacionPor;
	private Calendar fechaModificacion;
	
	// Property accessors
	@Id
	@Column(name = "id_serie", nullable = false)
	public Long getIdSerie() {
		return this.idSerie;
	}

	public void setIdSerie(Long idSerie) {
		this.idSerie = idSerie;
	}

	@Column(name = "no_folio_inicial", length = 20)
	public String getNoFolioInicial() {
		return this.noFolioInicial;
	}

	public void setNoFolioInicial(String noFolioInicial) {
		this.noFolioInicial = noFolioInicial;
	}
	
	@Column(name = "no_folio_actual", length = 20)
	public String getNoFolioActual() {
		return this.noFolioActual;
	}

	public void setNoFolioActual(String noFolioActual) {
		this.noFolioActual = noFolioActual;
	}
	
	@Column(name = "no_folio_final", length = 20)
	public String getNoFolioFinal() {
		return noFolioFinal;
	}
	
	public void setNoFolioFinal(String noFolioFinal) {
		this.noFolioFinal = noFolioFinal;
	}
	

	@Column(name = "serie", length = 25)
	public String getSerie() {
		return this.serie;
	}
	
	public void setSerie(String serie) {
		this.serie = serie;
	}
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_sucursal", nullable = false)
	public Sucursal getSucursal() {
		return this.sucursal;
	}
	
	public void setSucursal(Sucursal sucursal) {
		this.sucursal = sucursal;
	}
	
	@Column(name = "rfc", nullable = false, length = 13)
	public String getRFC() {
		return this.rfc;
	}
	
	public void setRFC(String rfc) {
		this.rfc = rfc;
	}
	
	@Column(name = "is_default", columnDefinition="boolean default false")
	public Boolean getIsDefault() {
		return this.isDefault;
	}
	
	public void setIsDefault(Boolean isDefault) {
		this.isDefault = isDefault;
	}
	
	@Column(name = "year_aprobacion", length = 4)
	public String getYearAprobacion() {
		return yearAprobacion;
	}
	
	public void setYearAprobacion(String yearAprobacion) {
		this.yearAprobacion = yearAprobacion;
	}
	
	@Column(name = "num_aprobacion", length = 12)
	public String getNumAprobacion() {
		return numAprobacion;
	}
	
	public void setNumAprobacion(String numAprobacion) {
		this.numAprobacion = numAprobacion;
	}
	
	@Column(name = "tipo_de_comprobante", length = 15)
	public String getTipoDeComprobante() {
		return tipoComprobante;
	}
	
	public void setTipoDeComprobante(String tipoComprobante) {
		this.tipoComprobante = tipoComprobante;
	}
	
	@Column(name = "ultima_modificacion_por")
	public Long getUltimaModificacionPor() {
		return this.ultimaModificacionPor;
	}

	public void setUltimaModificacionPor(Long ultimaModificacionPor) {
		this.ultimaModificacionPor = ultimaModificacionPor;
	}

	@Column(name = "fecha_modificacion")
	@Temporal(TemporalType.TIMESTAMP)
	@Version
	public Calendar getFechaModificacion() {
		return this.fechaModificacion;
	}

	public void setFechaModificacion(Calendar fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}
}
